/*
 * @Author: Kiro AI Assistant
 * @Date: 2025-01-10
 * @Description: 智能颜色生成器 - 生成美观的渐变色
 */

import 'package:flutter/material.dart';

/// 智能颜色生成器
/// 用于生成美观的渐变色
class SmartColorGenerator {
  /// 从网络图片生成渐变色（简化版本）
  static Future<List<Color>> generateGradientFromImage(
    String imageUrl, {
    Color fallbackColor = Colors.black,
  }) async {
    try {
      // 暂时使用预设的渐变色，后续可以实现图片颜色提取
      return generateSmartGradient(fallbackColor, fallbackColor: fallbackColor);
    } catch (e) {
      debugPrint('生成渐变色失败: $e');
      return _generateFallbackGradient(fallbackColor);
    }
  }

  /// 生成智能渐变色
  static List<Color> generateSmartGradient(
    Color primaryColor, {
    Color fallbackColor = Colors.black,
  }) {
    try {
      final hsl = HSLColor.fromColor(primaryColor);

      // 生成2个渐变色用于背景
      final colors = <Color>[];

      // 第一个颜色：稍微亮一点的主色调
      colors.add(
          hsl.withLightness((hsl.lightness + 0.1).clamp(0.0, 1.0)).toColor());

      // 第二个颜色：稍微暗一点的主色调
      colors.add(
          hsl.withLightness((hsl.lightness - 0.2).clamp(0.0, 1.0)).toColor());

      return colors;
    } catch (e) {
      debugPrint('生成智能渐变失败: $e');
      return _generateFallbackGradient(fallbackColor);
    }
  }

  /// 生成备用渐变色
  static List<Color> _generateFallbackGradient(Color fallbackColor) {
    return [
      fallbackColor,
      fallbackColor.withOpacity(0.8),
    ];
  }

  /// 生成深色主题渐变
  static List<Color> generateDarkGradient(Color primaryColor) {
    final hsl = HSLColor.fromColor(primaryColor);

    return [
      hsl.withLightness(0.1).toColor(),
      hsl.withLightness(0.05).toColor(),
    ];
  }

  /// 生成亮色主题渐变
  static List<Color> generateLightGradient(Color primaryColor) {
    final hsl = HSLColor.fromColor(primaryColor);

    return [
      hsl.withLightness(0.9).toColor(),
      hsl.withLightness(0.95).toColor(),
    ];
  }
}
